#ifndef  ZY_DATA_H
#define ZY_DATA_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h> //ctime

typedef struct data { //data的数据结构
	int type;			//文件类型 4 dir, 8 file
	char *file_name;	//文件名 使用时动态开辟内存空间
	time_t time;		//文件的修改时间	
} data_t;
typedef struct node { //节点数据结构
	data_t *data;   //data	
	struct node *p; //只有与父节点直接连接的节点, 该域指向父节点. 其余节点该域为NULL
	struct node *c; //只有 有子节点 的节点, 该域指向子节点. 其余节点该域为NULL
	struct node *l; //指向同一层(同一目录)下的前一个节点. 与父节点直接相连的节点的该域为NULL(其为最左节点)
	struct node *r; //指向同一层(同一目录)下的后一个节点. 最右节点的该域为NULL
} node_t;

//插入一个节点
//参数: [IN]: 传入父节点
node_t * insert_node(node_t **f_node, int type, char *file_name, time_t time);
//打印一个节点的信息 
//传入该节点, 打印前\t的个数
void print_node(node_t *node, int n);
//打印树, 传入根节点地址及0
//打印本节点及其子节点, 右节点
void print_tree(node_t *root, int n);
//将整个树删除
node_t *delete_tree(node_t *root);
//将本节点及其子节点删除
node_t *delete_node(node_t *node);

#endif
